package com.yuju.init.service;

import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.stereotype.Component;

import com.yuju.cache.RedisCache;
import com.yuju.cache.RedisPluginInit;
import com.yuju.init.fastdfs.FastDFSInit;

/**
 * Created by xuehj on 2017/10/13 0013.
 * 此类由Spring容器负责实例化，可用作系统初始化
 */
@Component
public class SysInit implements ApplicationListener<ContextRefreshedEvent> {
	// 这里可以注入Service
    private RedisCache simpleCache = RedisCache.getInstance();
    
    @Override
    public void onApplicationEvent(ContextRefreshedEvent event) {
    	// event.getApplicationContext().getDisplayName().equals("Root WebApplicationContext")
    	// 执行初始化
        if (event.getApplicationContext().getParent() == null) {
            System.out.println("================系统初始化=====================");
        	// 初始化系统缓存
        	initSysCache(event);
        	
        	// 初始化FastDFS
        	initFastDFS(event);
        }
    }
    
    /**
     * 
     * 功能：创建/初始 化系统缓存<br/>
     *
     * @author xuehj
     * @Date 2017年12月19日 上午9:42:03 <br/>
     */
    private void initSysCache(ContextRefreshedEvent event) {
    	String filter = event.getApplicationContext().getEnvironment().getProperty("spring.profiles.active");
    	RedisPluginInit.initCache(filter);
    }
    
    private void initFastDFS(ContextRefreshedEvent event) {
    	String filter = event.getApplicationContext().getEnvironment().getProperty("spring.profiles.active");
    	FastDFSInit.init(filter);
    }
}
